package cn.ray.springframework.beans.factory;

import cn.ray.springframework.beans.BeansException;
import cn.ray.springframework.beans.factory.config.AutowireCapableBeanFactory;
import cn.ray.springframework.beans.factory.config.BeanDefinition;
import cn.ray.springframework.beans.factory.config.BeanPostProcessor;
import cn.ray.springframework.beans.factory.config.ConfigurableBeanFactory;

//提供分析和修改Bean 以及预先实例化的操作接口，目前只有一个getBeanDefinition方法
//将三个接口的功能连接，提供完整的Bean工厂配置和操作的能力
public interface ConfigurableListableBeanFactory extends ListableBeanFactory, AutowireCapableBeanFactory, ConfigurableBeanFactory {
    BeanDefinition getBeanDefinition(String beanName) throws BeansException;

    void preInstantiateSingletons()throws BeansException;

    void addBeanPostProcessors(BeanPostProcessor beanPostProcessor);

}
